package com.example.demo.common.domain;

import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;
@Component
public class RoomExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public RoomExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andRtypeIdIsNull() {
            addCriterion("RType_ID is null");
            return (Criteria) this;
        }

        public Criteria andRtypeIdIsNotNull() {
            addCriterion("RType_ID is not null");
            return (Criteria) this;
        }

        public Criteria andRtypeIdEqualTo(Integer value) {
            addCriterion("RType_ID =", value, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andRtypeIdNotEqualTo(Integer value) {
            addCriterion("RType_ID <>", value, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andRtypeIdGreaterThan(Integer value) {
            addCriterion("RType_ID >", value, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andRtypeIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("RType_ID >=", value, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andRtypeIdLessThan(Integer value) {
            addCriterion("RType_ID <", value, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andRtypeIdLessThanOrEqualTo(Integer value) {
            addCriterion("RType_ID <=", value, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andRtypeIdIn(List<Integer> values) {
            addCriterion("RType_ID in", values, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andRtypeIdNotIn(List<Integer> values) {
            addCriterion("RType_ID not in", values, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andRtypeIdBetween(Integer value1, Integer value2) {
            addCriterion("RType_ID between", value1, value2, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andRtypeIdNotBetween(Integer value1, Integer value2) {
            addCriterion("RType_ID not between", value1, value2, "rtypeId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdIsNull() {
            addCriterion("Hot_hotel_id is null");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdIsNotNull() {
            addCriterion("Hot_hotel_id is not null");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdEqualTo(Integer value) {
            addCriterion("Hot_hotel_id =", value, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdNotEqualTo(Integer value) {
            addCriterion("Hot_hotel_id <>", value, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdGreaterThan(Integer value) {
            addCriterion("Hot_hotel_id >", value, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("Hot_hotel_id >=", value, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdLessThan(Integer value) {
            addCriterion("Hot_hotel_id <", value, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdLessThanOrEqualTo(Integer value) {
            addCriterion("Hot_hotel_id <=", value, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdIn(List<Integer> values) {
            addCriterion("Hot_hotel_id in", values, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdNotIn(List<Integer> values) {
            addCriterion("Hot_hotel_id not in", values, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdBetween(Integer value1, Integer value2) {
            addCriterion("Hot_hotel_id between", value1, value2, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andHotHotelIdNotBetween(Integer value1, Integer value2) {
            addCriterion("Hot_hotel_id not between", value1, value2, "hotHotelId");
            return (Criteria) this;
        }

        public Criteria andOrderNumberIsNull() {
            addCriterion("Order_Number is null");
            return (Criteria) this;
        }

        public Criteria andOrderNumberIsNotNull() {
            addCriterion("Order_Number is not null");
            return (Criteria) this;
        }

        public Criteria andOrderNumberEqualTo(Integer value) {
            addCriterion("Order_Number =", value, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andOrderNumberNotEqualTo(Integer value) {
            addCriterion("Order_Number <>", value, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andOrderNumberGreaterThan(Integer value) {
            addCriterion("Order_Number >", value, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andOrderNumberGreaterThanOrEqualTo(Integer value) {
            addCriterion("Order_Number >=", value, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andOrderNumberLessThan(Integer value) {
            addCriterion("Order_Number <", value, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andOrderNumberLessThanOrEqualTo(Integer value) {
            addCriterion("Order_Number <=", value, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andOrderNumberIn(List<Integer> values) {
            addCriterion("Order_Number in", values, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andOrderNumberNotIn(List<Integer> values) {
            addCriterion("Order_Number not in", values, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andOrderNumberBetween(Integer value1, Integer value2) {
            addCriterion("Order_Number between", value1, value2, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andOrderNumberNotBetween(Integer value1, Integer value2) {
            addCriterion("Order_Number not between", value1, value2, "orderNumber");
            return (Criteria) this;
        }

        public Criteria andHotelIdIsNull() {
            addCriterion("Hotel_id is null");
            return (Criteria) this;
        }

        public Criteria andHotelIdIsNotNull() {
            addCriterion("Hotel_id is not null");
            return (Criteria) this;
        }

        public Criteria andHotelIdEqualTo(Integer value) {
            addCriterion("Hotel_id =", value, "hotelId");
            return (Criteria) this;
        }

        public Criteria andHotelIdNotEqualTo(Integer value) {
            addCriterion("Hotel_id <>", value, "hotelId");
            return (Criteria) this;
        }

        public Criteria andHotelIdGreaterThan(Integer value) {
            addCriterion("Hotel_id >", value, "hotelId");
            return (Criteria) this;
        }

        public Criteria andHotelIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("Hotel_id >=", value, "hotelId");
            return (Criteria) this;
        }

        public Criteria andHotelIdLessThan(Integer value) {
            addCriterion("Hotel_id <", value, "hotelId");
            return (Criteria) this;
        }

        public Criteria andHotelIdLessThanOrEqualTo(Integer value) {
            addCriterion("Hotel_id <=", value, "hotelId");
            return (Criteria) this;
        }

        public Criteria andHotelIdIn(List<Integer> values) {
            addCriterion("Hotel_id in", values, "hotelId");
            return (Criteria) this;
        }

        public Criteria andHotelIdNotIn(List<Integer> values) {
            addCriterion("Hotel_id not in", values, "hotelId");
            return (Criteria) this;
        }

        public Criteria andHotelIdBetween(Integer value1, Integer value2) {
            addCriterion("Hotel_id between", value1, value2, "hotelId");
            return (Criteria) this;
        }

        public Criteria andHotelIdNotBetween(Integer value1, Integer value2) {
            addCriterion("Hotel_id not between", value1, value2, "hotelId");
            return (Criteria) this;
        }

        public Criteria andRtypeNameIsNull() {
            addCriterion("RType_Name is null");
            return (Criteria) this;
        }

        public Criteria andRtypeNameIsNotNull() {
            addCriterion("RType_Name is not null");
            return (Criteria) this;
        }

        public Criteria andRtypeNameEqualTo(String value) {
            addCriterion("RType_Name =", value, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameNotEqualTo(String value) {
            addCriterion("RType_Name <>", value, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameGreaterThan(String value) {
            addCriterion("RType_Name >", value, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameGreaterThanOrEqualTo(String value) {
            addCriterion("RType_Name >=", value, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameLessThan(String value) {
            addCriterion("RType_Name <", value, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameLessThanOrEqualTo(String value) {
            addCriterion("RType_Name <=", value, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameLike(String value) {
            addCriterion("RType_Name like", value, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameNotLike(String value) {
            addCriterion("RType_Name not like", value, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameIn(List<String> values) {
            addCriterion("RType_Name in", values, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameNotIn(List<String> values) {
            addCriterion("RType_Name not in", values, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameBetween(String value1, String value2) {
            addCriterion("RType_Name between", value1, value2, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andRtypeNameNotBetween(String value1, String value2) {
            addCriterion("RType_Name not between", value1, value2, "rtypeName");
            return (Criteria) this;
        }

        public Criteria andBedTypeIsNull() {
            addCriterion("Bed_Type is null");
            return (Criteria) this;
        }

        public Criteria andBedTypeIsNotNull() {
            addCriterion("Bed_Type is not null");
            return (Criteria) this;
        }

        public Criteria andBedTypeEqualTo(String value) {
            addCriterion("Bed_Type =", value, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeNotEqualTo(String value) {
            addCriterion("Bed_Type <>", value, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeGreaterThan(String value) {
            addCriterion("Bed_Type >", value, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeGreaterThanOrEqualTo(String value) {
            addCriterion("Bed_Type >=", value, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeLessThan(String value) {
            addCriterion("Bed_Type <", value, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeLessThanOrEqualTo(String value) {
            addCriterion("Bed_Type <=", value, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeLike(String value) {
            addCriterion("Bed_Type like", value, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeNotLike(String value) {
            addCriterion("Bed_Type not like", value, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeIn(List<String> values) {
            addCriterion("Bed_Type in", values, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeNotIn(List<String> values) {
            addCriterion("Bed_Type not in", values, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeBetween(String value1, String value2) {
            addCriterion("Bed_Type between", value1, value2, "bedType");
            return (Criteria) this;
        }

        public Criteria andBedTypeNotBetween(String value1, String value2) {
            addCriterion("Bed_Type not between", value1, value2, "bedType");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeIsNull() {
            addCriterion("BreakfastType is null");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeIsNotNull() {
            addCriterion("BreakfastType is not null");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeEqualTo(String value) {
            addCriterion("BreakfastType =", value, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeNotEqualTo(String value) {
            addCriterion("BreakfastType <>", value, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeGreaterThan(String value) {
            addCriterion("BreakfastType >", value, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeGreaterThanOrEqualTo(String value) {
            addCriterion("BreakfastType >=", value, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeLessThan(String value) {
            addCriterion("BreakfastType <", value, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeLessThanOrEqualTo(String value) {
            addCriterion("BreakfastType <=", value, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeLike(String value) {
            addCriterion("BreakfastType like", value, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeNotLike(String value) {
            addCriterion("BreakfastType not like", value, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeIn(List<String> values) {
            addCriterion("BreakfastType in", values, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeNotIn(List<String> values) {
            addCriterion("BreakfastType not in", values, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeBetween(String value1, String value2) {
            addCriterion("BreakfastType between", value1, value2, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andBreakfasttypeNotBetween(String value1, String value2) {
            addCriterion("BreakfastType not between", value1, value2, "breakfasttype");
            return (Criteria) this;
        }

        public Criteria andRoomTotalIsNull() {
            addCriterion("Room_total is null");
            return (Criteria) this;
        }

        public Criteria andRoomTotalIsNotNull() {
            addCriterion("Room_total is not null");
            return (Criteria) this;
        }

        public Criteria andRoomTotalEqualTo(Integer value) {
            addCriterion("Room_total =", value, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andRoomTotalNotEqualTo(Integer value) {
            addCriterion("Room_total <>", value, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andRoomTotalGreaterThan(Integer value) {
            addCriterion("Room_total >", value, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andRoomTotalGreaterThanOrEqualTo(Integer value) {
            addCriterion("Room_total >=", value, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andRoomTotalLessThan(Integer value) {
            addCriterion("Room_total <", value, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andRoomTotalLessThanOrEqualTo(Integer value) {
            addCriterion("Room_total <=", value, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andRoomTotalIn(List<Integer> values) {
            addCriterion("Room_total in", values, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andRoomTotalNotIn(List<Integer> values) {
            addCriterion("Room_total not in", values, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andRoomTotalBetween(Integer value1, Integer value2) {
            addCriterion("Room_total between", value1, value2, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andRoomTotalNotBetween(Integer value1, Integer value2) {
            addCriterion("Room_total not between", value1, value2, "roomTotal");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyIsNull() {
            addCriterion("Max_Occupancy is null");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyIsNotNull() {
            addCriterion("Max_Occupancy is not null");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyEqualTo(Integer value) {
            addCriterion("Max_Occupancy =", value, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyNotEqualTo(Integer value) {
            addCriterion("Max_Occupancy <>", value, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyGreaterThan(Integer value) {
            addCriterion("Max_Occupancy >", value, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyGreaterThanOrEqualTo(Integer value) {
            addCriterion("Max_Occupancy >=", value, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyLessThan(Integer value) {
            addCriterion("Max_Occupancy <", value, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyLessThanOrEqualTo(Integer value) {
            addCriterion("Max_Occupancy <=", value, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyIn(List<Integer> values) {
            addCriterion("Max_Occupancy in", values, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyNotIn(List<Integer> values) {
            addCriterion("Max_Occupancy not in", values, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyBetween(Integer value1, Integer value2) {
            addCriterion("Max_Occupancy between", value1, value2, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andMaxOccupancyNotBetween(Integer value1, Integer value2) {
            addCriterion("Max_Occupancy not between", value1, value2, "maxOccupancy");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("Price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("Price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(Integer value) {
            addCriterion("Price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(Integer value) {
            addCriterion("Price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(Integer value) {
            addCriterion("Price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(Integer value) {
            addCriterion("Price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(Integer value) {
            addCriterion("Price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(Integer value) {
            addCriterion("Price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<Integer> values) {
            addCriterion("Price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<Integer> values) {
            addCriterion("Price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(Integer value1, Integer value2) {
            addCriterion("Price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(Integer value1, Integer value2) {
            addCriterion("Price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andImageIsNull() {
            addCriterion("Image is null");
            return (Criteria) this;
        }

        public Criteria andImageIsNotNull() {
            addCriterion("Image is not null");
            return (Criteria) this;
        }

        public Criteria andImageEqualTo(String value) {
            addCriterion("Image =", value, "image");
            return (Criteria) this;
        }

        public Criteria andImageNotEqualTo(String value) {
            addCriterion("Image <>", value, "image");
            return (Criteria) this;
        }

        public Criteria andImageGreaterThan(String value) {
            addCriterion("Image >", value, "image");
            return (Criteria) this;
        }

        public Criteria andImageGreaterThanOrEqualTo(String value) {
            addCriterion("Image >=", value, "image");
            return (Criteria) this;
        }

        public Criteria andImageLessThan(String value) {
            addCriterion("Image <", value, "image");
            return (Criteria) this;
        }

        public Criteria andImageLessThanOrEqualTo(String value) {
            addCriterion("Image <=", value, "image");
            return (Criteria) this;
        }

        public Criteria andImageLike(String value) {
            addCriterion("Image like", value, "image");
            return (Criteria) this;
        }

        public Criteria andImageNotLike(String value) {
            addCriterion("Image not like", value, "image");
            return (Criteria) this;
        }

        public Criteria andImageIn(List<String> values) {
            addCriterion("Image in", values, "image");
            return (Criteria) this;
        }

        public Criteria andImageNotIn(List<String> values) {
            addCriterion("Image not in", values, "image");
            return (Criteria) this;
        }

        public Criteria andImageBetween(String value1, String value2) {
            addCriterion("Image between", value1, value2, "image");
            return (Criteria) this;
        }

        public Criteria andImageNotBetween(String value1, String value2) {
            addCriterion("Image not between", value1, value2, "image");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}